package com.jie.langlangmall.service;

import com.jie.langlangmall.dto.PmsProductCategoryParam;
import com.jie.langlangmall.dto.PmsProductCategoryWithChildrenItem;
import com.jie.langlangmall.model.PmsProductCategory;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author Jie
 * @Date 2024/11/23
 * @Email 3217998214@qq.com
 * @Description 商品分类
 */
public interface PmsProductCategoryService {

    /**
     * 查询所有一级分类以及子分类
     *
     * @return
     */
    List<PmsProductCategoryWithChildrenItem> listWithChildren();

    /**
     * 分页查询
     *
     * @param parentId
     * @param pageSize
     * @param pageNum
     * @return
     */
    List<PmsProductCategory> list(Long parentId, Integer pageSize, Integer pageNum);

    /**
     * 根据ID获取商品分类信息
     *
     * @param id
     * @return
     */
    PmsProductCategory getItem(Long id);

    /**
     * 删除商品分类
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 修改导航栏状态
     *
     * @param ids
     * @param navStatus
     */
    void updateNavStatus(List<Long> ids, Integer navStatus);

    /**
     * 修改显示状态
     *
     * @param ids
     * @param showStatus
     */
    void updateShowStatus(List<Long> ids, Integer showStatus);

    /**
     * 新增分类
     *
     * @param param
     */
    @Transactional
    void create(PmsProductCategoryParam param);

    /**
     * 修改分类信息
     *
     * @param id
     * @param param
     */
    @Transactional
    void update(Long id, PmsProductCategoryParam param);
}
